package space.goldchen.mapstruct.mapper;

/**
 * @author 2021
 * @create 2025-04-21 09:17
 */

import java.util.List;

/**
 * 转换对象的属性名称一致时，可以省略Mappings的对应关系设置，使用泛型比较合适
 * mapstruct 公共类
 * <DTO,Entity>
 */
public interface BaseMapper<D, E> {

    /**
     * entity转 DTO
     *
     * @param entity
     * @return
     */
    D toDto(E entity);

    /**
     * DTO 转 entity
     *
     * @param dto
     * @return
     */
    E toEntity(D dto);

    /**
     * entity集合 转 DTO集合
     *
     * @param entityList
     * @return
     */
    List<D> toDto(List<E> entityList);

    /**
     * DTO集合 转 entity集合
     *
     * @param dtoList
     * @return
     */
    List<E> toEntity(List<D> dtoList);
}
